import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const state = {
    count:1,
    newOne:888
}

const mutations = {
    add(state,n){
        state.count+=n;
    },
    reduce(state){
        state.count--;
    }
}

const getters = {  // 比如我们现在要对store.js文件中的count进行一个计算属性的操作，就是在它输出前，给它加上100.
    count:function(state){
        return state.count += 100;
    }
}

const actions = { // action与mutation不同  action异步修改状态
    addAction(context){
        context.commit('add',3) // context 上下文 相当于store本身
    },
    // reduceAction({commit}){ 
    //     commit('reduce') // 直接commit对象传过来
     
    // },
    reduceAction(context){  // action异步？？？？？？？ setTimeout本身异步
        setTimeout(()=>{context.commit('reduce')},3000);
        console.log('我比reduce先执行');
        
    }

}
const moduleA = {
    state,mutations,getters,actions
}


export default new Vuex.Store({
   modules:{a:moduleA}
})